#include <vector>
#include "Delaunay.h"
using namespace std;

struct Point
{
	double x;
	double y;
};

struct VoronoiPoint
{
	bool isInfinity;
	double x;
	double y;
	DelaunayPoint dp1;
	DelaunayPoint dp2;
	DelaunayPoint dp3;
	int degree;
};

struct VoronoiEdge
{
	VoronoiPoint vp1;
	VoronoiPoint vp2;
	DelaunayPoint dp1;
	DelaunayPoint dp2;

	bool isDelete;

	Point intersectionPoint;
	double slope;

	// may be redundant
	double t1;
	double t2;
};


struct VoronoiRegion
{
	vector<VoronoiEdge> vEdgeList;
	vector<VoronoiPoint> vPointList;
	DelaunayPoint dp1;
};
